//classe para adicionar arquivos em tempo de execucao.
public class CarregarClasse
{
	private String className;
	private Object objInstance;
	private Class objClass;
	private ClassLoader objClassLoader;


	public CarregarClasse()
	{
		//instancia do objeto que permite instanciar classe dinamicamente
		ClassLoader classLoader = Main.class.getClassLoader(); 

		//Class aClass;

		//this.objClass = aClass;
		this.objClassLoader = classLoader;
	}


	//adicionar classe dinamicamente
	public void carregar( String className ) throws Exception
	{
	
		this.className = className;

		try 
		{
			this.objClass = this.objClassLoader.loadClass( className );

    		} catch ( ClassNotFoundException e ) 
		{
        		//e.printStackTrace();
			throw new Exception( "Erro ao carregar a classe "+className );
    		} 
		
	
	}

	
	public String getClassName()
	{
		return this.objClass.getName();
	}


	public Object getNewInstance( String className ) throws Exception
	{
		Object obj;
			
		this.carregar( className );
	
		try
		{
			obj = (Object) this.objClass.newInstance();
		}catch(Exception e)
		{
			throw new Exception("Erro ao instanciar");
		}

		return obj;
	}

	 

}